PHP Notice Model klasse
Probleem
Feedback berichten moeten gedetailleerd zijn en precies aangeven wat er is gebeurd en wanneer. Een ander probleem is de lokalisatie. De gebruiker van de applicatie moet de feedback in zijn taal krijgen.
Design
Fields is de naam die in OO wordt gegeven aan veldvariabelen. Field variables of veldvariabelen 'bestaan' buiten de methodes en zijn in alle methoden van de klasse toegankelijk. Declareer je ze als private zijn ze enkel in de klasse zelf te gebruiken. Wil je toegang tot die velden in de overervende klassen, declareer je ze als protected. En wil je ze benaderen vanuit andere klassen, die er niet van overerven, declareer je ze als public. Vermits we toegang tot die velden willen hebben vanuit de overervende klassen, declareren we ze als protected.
De Notice
klasse erft over van de Messages klasse. Op die manier kunnen we heel gemakkelijk de ene lokalisatie door een andere vervangen.
Velden
naam | Bereik | Beschrijving |
$caption | protected | A title, short explanation, or description accompanying the message; de tekst van het bericht in leesbare en begrijpbare taal voor de eindgebruiker |
$className | protected | de naam van de klasse die het bericht genoteerd heeft |
$code | protected | de code van het bericht, de foutcode indien het bericht een foutmelding is; dat kan bijvoorbeeld een sql code zijn |
$codeDriver | protected | voor SQL of andere provider foutcode |
$context | protected | meer info over de context waarin het bericht werd genoteerd |
$debugInfo | protected | retourneert de stack tot aan de naam van de functie die het bericht noteerde |
$endTime | protected | de einddatumstempel van het proces waarover het bericht gaat |
$name | protected | naam van het bericht, wordt als key gebruikt in het feedbackboek |
$startTime | protected | de begindatumstempel van het proces waarover het bericht gaat |
$text | protected | de gedetailleerde tekst van het bericht |
$type | protected | error, message |
Getters en setters
getText | public | string | retourneert de tekst van de feedback | |
getCode | public | string | ||
getCaption | public | string | ||
getcodeDriver | public | string | retourneert code van de SQL of andere provider | |
getType | public | boolean | ||
getName | public | string | ||
getStartTime | public | string | ||
getEndTime | public | string | ||
getContext | public | string | ||
getDebugInfo | public | string | ||
setText | public | $text | ||
setCode | public | $text | ||
setCodeDriver | public | $text | ||
setType | public | $text | ||
setName | public | $text | ||
setStartTime | public | $text | ||
setEndTime | public | $text | ||
setContext | public | $text | ||
setDebugInfo | public | void | reconstrueert de calling stack |
Methoden
naam | Bereik | retour-gegevenstype | parameter | beschrijving |
__construct | public | void | $messages | instantie van de klasse Messages |
reset | public | maakt alle velden leeg (lege string) | ||
copy | public | string | maakt een kopie van het message object | |
startTimeInkey | public | string | $name | voegt de tijd toe aan de naam |
start | public | string | $name | initialiseert het message object |
toHtml | public | string | html string van inhoud van het message object |
Oplossing
De bestanden vind je op Bitbucket.
Gebruiksaanwijzing
Zonder Composer
De Notice
klasse hoort thuis in het model van de app. De klasse is gemaakt door vendor met de naam ModernWays en de component heet Dialog. Kopieer het klassenbestand Notice.php dus in de submap van je webapplicatie /modernways/dialog/src/Model.
Kopiëer het view-klassenbestand Notice.php om het Message object te tonen in de map /modernways/dialog/src/View map.
Het template bestand met de html plaats je in de map /modernways/dialog/src/View/Template.
Het test bestand Notice.php plaats je in de map /modernways/dialog/src/test.
Het autload bestand kopiëer je in de root van de Dialog component.